Database systems store enormous amounts of information that can be accessed by users for identification and retrieval of valuable documents that contain data, text, audio and video information. A typical example of a database system is shown in FIG. 1. Information processing units (101a to 101n) can be any of the following: personal computers (DOS, WINDOWS or Macintosh, Linux machines), workstations, a client, a dumb terminal or equivalent. Hub processing units (102a to 102y) can be any of the following: a server, a master, a database controller or equivalent. Network (100) can be any of the following: a token ring network, a star network, a telecommunication switching network, a local area network (LAN), a wide area network (WAN), a corporate intranet, the Internet or equivalent. Information processing units (101a to 101n) are in communication with hub processing units (102a to 102y) via network 100. The sharing of data across network 100 is accomplished by computer search programs (103a to 103x) operating in conjunction with the hub processing units (102a to 102y). The search programs can be located on the hub processing units themselves or on another processing units that are not shown. In addition, a user employs a graphical user interface (GUI 104a to 104n) that permits him or her to submit search queries across network 100 to the hub processing units.
Upon reception of the search query, the hub processing units forward the request to the search programs (103a to 103x) for completion of the transaction. As is well known, search programs provide Boolean Operators (AND, OR NOT) to help build more sophisticated queries in order to narrow down the search result set. These Boolean Operators are used to provide the various permutations to the search programs (103a to 103x) which uses these to locate pertinent documents. Once in possession of the search query, the search programs compare the requested search parameters against documents stored in databases (105a to 105z). Finding words or phrases that compare favorably with the search query, the search programs return a list of relevant documents to the information processing units (101a to 101n) as well as library information such as type of document, location and highlighted words or phrases indicating the flags that caused the search program to retrieve the particular document.
When the search results are loaded into the graphical user interface, the user reviews the first set of headlines and or documents returned. Because of the large number of documents found and because the first set of search results do not usually provide documents particularly pertinent to the user's needs, he or she ordinarily reexamines his search strategy. Typically, additional words and phrases as well as selection of terms that more closely parallel the desired concepts are reformulated into a new query; this process can be time consuming and tedious to a user. Therefore, because of the increasing size of databases and the astronomical number of documents being made available to users, it becomes more and more difficult for a user to locate in a timely fashion documents that are of significant importance to his or her study, employment and/or enjoyment.
In particular, this invention addresses several problems related to Internet based searching. First, the construction of a “good” query string can take a considerable amount of time. Mostly, users are able to specify what they are looking for using natural language. For instance, “I'm looking for an article about Maine Coon Cats which describes theories about their origin” could be a description for a search query. Possible simple search queries could be any permutation of the string “Maine Coon Cats Origin”. As is well known, Search Engines provide Boolean Operators (AND, OR NOT) to help build more sophisticated queries in order to narrow down the search result set. The Boolean Operators are used to provide the various permutations to an Internet Search Engine which uses these to locate pertinent documents to the “Maine Coon Cats Origin” string.
Second, there are many Search Engines available on the World Wide Web. A user could use HotBot (http://www.hotbot.com) or AltaVista (http://www.altavista.com), or some other Search Engine. There are also Meta Search Engines available, which are used to search many popular Search Engines simultaneously. These Meta Search Engines then merge the search results from a plurality of Search Engines and present the merged results to a user. However, some of the engines may provide no results whatsoever whilst others might provide a better result; hence, it is difficult to determine which engine provides a reasonable result set. Also, this process can take a considerable amount of time. Therefore, it would be desirable to reuse existing queries from other users. Thus, one benefits from the intelligence and hard work of other users and one can find information faster. Additionally, some mechanism or incentive must be provided to users so that they would be willing to submit their queries for subsequent reuse by other users.